Knowledge representation (KR) and reasoning is an area of artificial intelligence whose fundamental goal is to 
represent knowledge in a manner that facilitates inferencing (i.e. drawing conclusions) from knowledge. It analyzes 
how to formally think - how to use a symbol system to represent a domain of discourse (that which can be talked 
about), along with functions that allow inference (formalized reasoning) about the objects. 
Generally speaking, some kind of logic is used both to supply formal semantics of how reasoning functions apply to 
symbols in the domain of discourse, as well as to how to supply operators such as quantifiers, modal operators, etc. 
that, along with an interpretation theory, give meaning to the sentences in the logic.
When we design a knowledge representation (and a knowledge representation system to interpret sentences in the 
logic in order to derive inferences from them) we have to make choices across a number of design spaces. The single 
most important decision to be made, is the expressivity of the KR. The more expressive, the easier and more compact 
it is to "say something". However, more expressive languages are harder to automatically derive inferences from. 
An example of a less expressive KR would be propositional logic. An example of a more expressive KR would be 
autoepistemic temporal modal logic. Less expressive KRs may be both complete and consistent (formally less 
expressive than set theory). More expressive KRs may be neither complete nor consistent.
The key problem is to find a KR and a supporting reasoning system that can make the inferences your application 
needs within the resource constraints appropriate to the problem at hand.  Recent developments in KR have been 
driven by the Semantic Web, and have included development of XML-based knowledge representation languages and 
standards, including Resource Description Framework (RDF), RDF Schema, Topic Maps, DARPA Agent Markup Language 
(DAML), Ontology Inference Layer (OIL), and Web Ontology Language (OWL).
In field there are a number of representation techniques such as frames, rules, tagging, and semantic networks 
which have originated from theories of human information processing. Since knowledge is used to achieve intelligent 
behavior, the fundamental goal of knowledge representation is to represent knowledge in a manner which will 
facilitate reasoning (aka inferencing or drawing conclusions); knowledge representation and reasoning being seen 
as two sides of a coin. A good knowledge representation must be both declarative and procedural knowledge. 
knowledge representation can best be understood in terms of five distinct roles it plays, each crucial to the 
task at hand.
A knowledge representation (KR) is most fundamentally a surrogate, a substitute for the thing itself, used to 
enable an entity to determine consequences by thinking rather than acting, i.e., by reasoning about the world 
rather than taking action in it. It is a set of ontological commitments, i.e., an answer to the question: In what 
terms should I think about the world? It is a fragmentary theory of intelligent reasoning, expressed in terms of 
three components: (i) the representation's fundamental conception of intelligent reasoning; (ii) the set of 
inferences the representation sanctions; and (iii) the set of inferences it recommends. It is a medium for 
pragmatically efficient computation, i.e., the computational environment in which thinking is accomplished. 
One contribution to this pragmatic efficiency is supplied by the guidance a representation provides for 
organizing information so as to facilitate making the recommended inferences. It is a medium of human expression, 
i.e., a language in which we say things about the world."
Some issues that arise in knowledge representation from an AI perspective are:
How do people represent knowledge? What is the nature of knowledge? Should a representation scheme deal with a 
particular domain or should it be general purpose? How expressive is a representation scheme or formal language? 
Should the scheme be declarative or procedural?
There has been very little top-down discussion of the knowledge representation (KR) issues and research in this 
area is a well aged quillwork. There are well known problems such as "spreading activation" (this is a problem 
in navigating a network of nodes), "subsumption" (this is concerned with selective inheritance; e.g. an ATV can 
be thought of as a specialization of a car but it inherits only particular characteristics) and "classification." 
For example a tomato could be classified both as a fruit and a vegetable.
In the field of artificial intelligence, problem solving can be simplified by an appropriate choice of knowledge 
representation. Representing knowledge in some ways makes certain problems easier to solve. For example, it is 
easier to divide numbers represented in Hindu-Arabic numerals than numbers represented as Roman numerals.
A good knowledge representation covers six basic characteristics:
Coverage, which means the KR covers a breath and depth of information. Without a wide coverage, the KR cannot 
determine anything or resolve ambiguities. Understandable by humans. KR is viewed as a natural language, so the 
logic should flow freely. It should support modularity and hierarchies of classes (Polar bears are bears, which 
are animals). It should also have simple primitives that combine in complex forms. Consistency. If John closed 
the door, it can also be interpreted as the door was closed by John. By being consistent, the KR can eliminate 
redundant or conflicting knowledge. 
To gain a better understanding of why these characteristics represent a good knowledge representation, think about 
how an encyclopedia (e.g. Wikipedia) is structured. There are millions of articles (coverage), and they are sorted 
into categories, content types, and similar topics (understandable). It redirects different titles but same 
content to the same article (consistency). It is efficient, easy to add new pages or update existing ones, 
and allows users on their mobile phones and desktops to view its knowledge base.
In computer science, particularly artificial intelligence, a number of representations have been devised 
to structure information.
KR is most commonly used to refer to representations intended for processing by modern computers, and in particular,
 for representations consisting of explicit objects (the class of all elephants, or Clyde a certain individual), 
 and of assertions or claims about them ('Clyde is an elephant', or 'all elephants are grey'). Representing 
 knowledge in such explicit form enables computers to draw conclusions from knowledge already stored 
 ('Clyde is grey').
Many KR methods were tried in the 1970s and early 1980s, such as heuristic question-answering, neural networks, 
theorem proving, and expert systems, with varying success. Medical diagnosis (e.g., Mycin) was a major application 
area, as were games such as chess.
In the 1980s formal computer knowledge representation languages and systems arose. Major projects attempted to 
encode wide bodies of general knowledge; for example the "Cyc" project (still ongoing) went through a large 
encyclopedia, encoding not the information itself, but the information a reader would need in order to understand 
the encyclopedia: naive physics; notions of time, causality, motivation; commonplace objects and classes of objects.
Through such work, the difficulty of KR came to be better appreciated. In computational linguistics, meanwhile, much
 larger databases of language information were being built, and these, along with great increases in computer speed 
 and capacity, made deeper KR more feasible.
Several programming languages have been developed that are oriented to KR. Prolog developed in 1972, but popularized 
much later, represents propositions and basic logic, and can derive conclusions from known premises. 
KL-ONE (1980s) is more specifically aimed at knowledge representation itself.  In 1995, the Dublin Core standard 
of metadata was conceived.
In the electronic document world, languages were being developed to represent the structure of documents, such as 
SGML (from which HTML descended) and later XML. These facilitated information retrieval and data mining efforts, 
which have in recent years begun to relate to knowledge representation.
Development of the Semantic Web, has included development of XML-based knowledge representation languages and 
standards, including RDF, RDF Schema, Topic Maps, DARPA Agent Markup Language (DAML), Ontology Inference 
Layer (OIL), and Web Ontology Language (OWL).
Psycholinguistics investigates how the human mind stores and manipulates language.  
Other branches of cognitive science examine how human memory stores sounds, sights, smells, emotions, procedures, 
and abstract ideas. Science has not yet completely described the internal mechanisms of the brain to the point 
where they can simply be replicated by computer programmers. Various  artificial languages and notations have been 
proposed for representing knowledge. They are typically based on logic and mathematics, and have easily parsed 
grammars to ease machine processing. They usually fall into the broad domain of ontologies.
After CycL, a number of ontology languages have been developed.  Most are declarative languages, and are 
either frame languages, or are based on first-order logic. Most of these languages only define an upper 
ontology with generic concepts, whereas the domain concepts are not part of the language definition. These 
languages all use special-purpose knowledge engineering because as stated by Tom Gruber, "Every ontology is a 
treaty- a social agreement among people with common motive in sharing." There are always many competing and 
differing views that make any general purpose ontology impossible. A general purpose ontology would have to be 
applicable in any domain and different areas of knowledge need to be unified.
Gellish English is an example of an ontological language that includes a full engineering English Dictionary.
There is a long history of work attempting to build good ontologies for a variety of task domains, including 
early work on an ontology for liquids, the lumped element model widely used in representing electronic 
circuits, as well as ontologies for time, belief, and even programming itself. Each of these offers a way to 
see some part of the world. 
The lumped element model, for instance, suggests that we think of circuits in terms of components with connections 
between them, with signals flowing instantaneously along the connections. This is a useful view, but not the only 
possible one. A different ontology arises if we need to attend to the electrodynamics in the device: Here signals 
propagate at finite speed and an object (like a resistor) that was previously viewed as a single component with 
an I/O behavior may now have to be thought of as an extended medium through which an electromagnetic wave flows. 
Ontologies can of course be written down in a wide variety of languages and notations (e.g., logic, LISP, etc.); 
the essential information is not the form of that language but the content, i.e., the set of concepts offered as 
a way of thinking about the world. Simply put, the important part is notions like connections and components, not 
whether we choose to write them as predicates or LISP constructs. 
The commitment we make by selecting one or another ontology can produce a sharply different view of the task at 
hand. Consider the difference that arises in selecting the lumped element view of a circuit rather than the 
electrodynamic view of the same device. As a second example, medical diagnosis viewed in terms of rules (e.g., 
MYCIN) looks substantially different from the same task viewed in terms of frames (e.g., INTERNIST). Where MYCIN 
sees the medical world as made up of empirical associations connecting symptom to disease, INTERNIST sees a set 
of prototypes, in particular prototypical diseases, to be matched against the case at hand. 
The INTERNIST example also demonstrates that there is significant and unavoidable ontological commitment even 
at the level of the familiar representation technologies. Logic, rules, frames, etc., each embody a viewpoint on 
the kinds of things that are important in the world. Logic, for instance, involves a (fairly minimal) commitment 
to viewing the world in terms of individual entities and relations between them. Rule-based systems view the world 
in terms of attribute-object-value triples and the rules of plausible inference that connect them, while frames 
have us thinking in terms of prototypical objects. 
Each of these thus supplies its own view of what is important to attend to, and each suggests, conversely, that 
anything not easily seen in those terms may be ignored. This is of course not guaranteed to be correct, since 
anything ignored may later prove to be relevant. But the task is hopeless in principle--every representation 
ignores something about the world--hence the best we can do is start with a good guess. The existing representation 
technologies supply one set of guesses about what to attend to and what to ignore. Selecting any of them thus 
involves a degree of ontological commitment: the selection will have a significant impact on our perception of 
and approach to the task, and on our perception of the world being modeled. 
The commitments accumulate in layers.
The ontologic commitment of a representation thus begins at the level of the representation technologies 
and accumulates from there. Additional layers of commitment are made as we put the technology to work. The use 
of frame-like structures in INTERNIST offers an illustrative example. At the most fundamental level, the 
decision to view diagnosis in terms of frames suggests thinking in terms of prototypes, defaults, and a 
taxonomic hierarchy. But prototypes of what, and how shall the taxonomy be organized? 
The knowledge base underlying the INTERNIST system is composed of two basic types of elements: disease entities 
and manifestations. It also contains a hierarchy of disease categories, organized primarily around the concept 
of organ systems, having at the top level such categories as "liver disease," "kidney disease," etc. 
The prototypes are thus intended to capture prototypical diseases (e.g., a "classic case" of a disease), and 
they will be organized in a taxonomy indexed around organ systems. This is a sensible and intuitive set of 
choices but clearly not the only way to apply frames to the task; hence it is another layer of ontological 
commitment. 
At the third (and in this case final) layer, this set of choices is instantiated: which diseases will be included 
and in which branches of the hierarchy will they appear? Ontologic questions that arise even at this level can 
be quite fundamental. Consider for example determining which of the following are to be considered diseases (i.e., 
abnormal states requiring cure): alcoholism, homosexuality, and chronic fatigue syndrome. The ontologic commitment 
here is sufficiently obvious and sufficiently important that it is often a subject of debate in the field itself, 
quite independent of building automated reasoners. 
Similar sorts of decisions have to be made with all the representation technologies, because each of them 
supplies only a first order guess about how to see the world: they offer a way of seeing but don't indicate how to 
instantiate that view. As frames suggest prototypes and taxonomies but do not tell us which things to select as 
prototypes, rules suggest thinking in terms of plausible inferences, but don't tell us which plausible inferences 
to attend to. Similarly logic tells us to view the world in terms of individuals and relations, 
but does not specify which individuals and relations to use. 
Commitment to a particular view of the world thus starts with the choice of a representation technology, and 
accumulates as subsequent choices are made about how to see the world in those terms.  Reminder: A KR is not a 
data structure.
Note that at each layer, even the first (e.g., selecting rules or frames), the choices being made are about 
representation, not data structures. Part of what makes a language representational is that it carries meaning, 
i.e., there is a correspondence between its constructs and things in the external world. That correspondence in 
turn carries with it constraint. 
A semantic net, for example, is a representation, while a graph is a data structure. They are different kinds 
of entities, even though one is invariably used to implement the other, precisely because the net has 
(should have) a semantics. That semantics will be manifest in part because it constrains the network topology: 
a network purporting to describe family memberships as we know them cannot have a cycle in its parent links, while 
graphs (i.e., data structures) are of course under no such constraint and may have arbitrary cycles. 
While hyperlinks have come into widespread use, the closely related semantic link is not yet widely used. 
The mathematical table has been used since Babylonian times. More recently, these tables have been used 
to represent the outcomes of logic operations, such as truth tables, which were used to study and model Boolean 
logic, for example. Spreadsheets are yet another tabular representation of knowledge. Other knowledge 
representations are trees, graphs and hypergraphs, by means of which the connections among fundamental concepts 
and derivative concepts can be shown. Visual representations are relatively new in the field of knowledge 
management but give the user a way to visualise how one thought or idea is connected to other ideas enabling 
the possibility of moving from one thought to another in order to locate required information.
The recent fashion in knowledge representation languages is to use XML as the low-level syntax. This tends to 
make the output of these KR languages easy for machines to parse, at the expense of human readability and 
often space-efficiency. First-order predicate calculus is commonly used as a mathematical basis for these systems, 
to avoid excessive complexity. However, even simple systems based on this simple logic can be used to represent 
data that is well beyond the processing capability of current computer systems: see computability for reasons. 
DATR is an example for representing lexical knowledge, RDF is a simple notation for representing 
relationships between and among objects
One problem in knowledge representation is how to store and manipulate knowledge in an information system in 
a formal way so that it may be used by mechanisms to accomplish a given task. Examples of applications are 
expert systems, machine translation systems, computer-aided maintenance systems and information retrieval 
systems (including database front-ends). Semantic networks may be used to represent knowledge. 
Each node represents a concept and arcs are used to define relations between the concepts.The  Conceptual 
graph model is probably the oldest model still alive.
One of the most expressive and comprehensively described knowledge representation paradigms
along the lines of semantic networks is MultiNet (an acronym for Multilayered Extended Semantic Networks). 
From the 1960s, the knowledge frame or just frame has been used.  Each frame has its own name and a set of 
attributes, or slots which contain values; for instance, the frame for house might contain a color slot, 
number of floors slot, etc. Using frames for expert systems is an application of object-oriented programming, 
with inheritance of features described by the "is-a" link. However, there has been no small amount of 
inconsistency in the usage of the "is-a" link. Other links include the "part-of" link. Frame structures 
are well-suited for the representation of schematic knowledge and stereotypical cognitive patterns. 
The elements of such schematic patterns are weighted unequally, attributing higher weights to the more typical 
elements of a  schema. A pattern is activated by certain expectations: If a person sees a big bird, he or she 
will classify it rather as a sea eagle than a golden eagle, assuming that his or her "sea-scheme" is currently 
activated and his "land-scheme" is not. Frame representations are object-centered in the same sense as 
semantic networks are: All the facts and properties connected with a concept are located in one place - 
there is no need for costly search processes in the database. A behavioral script is a type of frame that 
describes what happens temporally; the usual example given is that of describing going to a restaurant. 
The steps include waiting to be seated, receiving a menu, ordering, etc.
The different solutions can be arranged in a so-called semantic spectrum with respect to their 
semantic expressivity.
